# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: 'Default GemCraft: Frostborn Wrath Template'

game: 'GemCraft: Frostborn Wrath'
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.
  game:
    'GemCraft: Frostborn Wrath': 0.6.2 # Version of the world required for this yaml to work as expected.

'GemCraft: Frostborn Wrath':
  ################
  # Game Options #
  ################
  goal:
    # What counts as completing GemCraft: Frostborn Wrath.
    # 
    # kill_gatekeeper:    Kill the Gatekeeper on A4.
    # kill_swarm_queen:   Kill the Swarm Queen on K4.
    # fields_count:       Complete a fixed number of Journey stages (set by Fields Required).
    kill_gatekeeper: 50
    kill_swarm_queen: 0
    fields_count: 0

  fields_required:
    # Number of Journey stages that must be completed to win.
    # Only used when Goal is set to 'fields_count'.
    # 
    # The game has 122 stages total.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 12
    # Maximum value is 122
    80: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-12-122: 0 # random value between 12 and 122

  random_starting_stages:
    # How many starting stages to roll at random from the four W fields.
    # 
    # 0 = don't roll — start on exactly the fields you list in Starting Stages instead.
    # 1-4 = start on that many randomly-chosen W fields.
    # Set this to `random` to roll the count itself (which can land on 0 = your specific list), or `random-range-1-4` to always roll a random 1 to 4.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 4
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-4: 0 # random value between 0 and 4

  starting_stages:
    # The exact W fields you start on, used when Random Starting Stages is 0.
    # 
    # List one or more of W1, W2, W3, W4 — every one you list is playable from the menu immediately; all other stages must be unlocked through Archipelago. Must contain at least one field. Starting on more than one field only makes a difference with per-stage field-token granularity (with per-tile, the whole W tile is already free from any single W starter).
    ['W1']

  difficulty:
    # Overall randomizer difficulty.
    # 
    # Fields unlock based on your wizard level, which you raise by clearing fields. Difficulty acts as a bonus or penalty on how much wizard-level progress each clear is worth: Easy clears grant the most, Extreme clears the least, with Medium and Hard in between.
    # So the two ends trade off against each other. Easy makes battles forgiving and each win pushes your wizard level up the fastest, so you blow through the unlock gates quickly. Extreme makes battles punishing and each win is worth the least, so the climb to each gate is the slowest and most gradual. The gates themselves sit at the same wizard levels on every difficulty.
    # Hard and Extreme MUST have Endurance mode enabled (disable_endurance off): their clears grant little XP, so Endurance runs are the catch-up path to reach the gates if you get stuck. Generation fails if Hard or Extreme is chosen with Endurance disabled.
    easy: 0
    medium: 0
    hard: 50
    extreme: 0

  achievement_required_effort:
    # How many of the in-game achievements count as Archipelago checks.
    # 
    # Each level includes every achievement from the levels below it, so the check counts are cumulative. Counts exclude achievements that can't be tracked (RNG-based or hidden ones); disabling Endurance mode removes a few more.
    # 
    # off:      no achievement checks.
    # trivial:  124 checks - collectable through normal vanilla play.
    # minor:    335 checks - adds 211 that need some special actions.
    # major:    474 checks - adds 139 that need some time investment.
    # extreme:  570 checks - adds 96 that need massive time investment and luck.
    # 
    # Trivial achievements are always included while this option is on, so the randomizer has enough locations for its progression items. More achievements means more checks to find and a longer seed.
    'off': 0
    trivial: 0
    minor: 50
    major: 0
    extreme: 0

  disable_endurance:
    # When enabled, Endurance mode is permanently blocked on the stage settings screen.
    # 
    # Useful for players who want to restrict themselves to Journey mode only, or for seeds where Endurance farming would trivialise progression.
    'false': 50
    'true': 0

  disable_trial:
    # When enabled, Wizard Trial mode is permanently blocked on the stage settings screen.
    # 
    # Trial mode has no Archipelago check locations, so it is disabled by default to keep the focus on Journey mode progression.
    'false': 0
    'true': 50

  extra_shadow_cores_per_wave:
    # Mod-only quality-of-life option that makes shadow cores easier to earn.
    # 
    # Grants this many extra shadow cores for every wave you get through in a battle. The extra cores drop into your normal shadow core pool exactly like vanilla drops, and are banked at the end of the level (on victory or defeat). Beating a 30-wave field at 5 gives 150 extra cores; losing a 50-wave field after 30 waves still gives 150.
    # 
    # 0 disables the feature. This option has no effect on generation, item placement, or logic.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 5
    2: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-5: 0 # random value between 0 and 5

  #################
  # Field Options #
  #################
  field_token_granularity:
    # How coarse the items that unlock new stages are.
    # 
    # Stages start locked and require Field Tokens to access. This option controls whether each stage has its own token or whole groups of stages unlock together. Coarser settings put fewer unique tokens in the pool but each token unlocks more stages; finer settings give you more individual unlocks but a larger item pool overall.
    # 
    # Each granularity has a "_progressive" sibling. Progressive variants use a single generic token that appears multiple times in the pool, and the Nth copy you receive unlocks the Nth stage/tile in a randomized order. The in-game effect is identical, but progressive variants tend to produce faster and more reliable seeds.
    # 
    # per_stage:             One token per stage (122 tokens). Each stage has its own unlock.
    # per_stage_progressive: 122 generic tokens. Each one unlocks the next stage in a randomized order.
    # per_tile:              One token per map tile (26 tokens). A tile's token unlocks every stage on that tile.
    # per_tile_progressive:  26 generic tokens. Each one unlocks the next tile.
    per_stage: 0
    per_stage_progressive: 0
    per_tile: 50
    per_tile_progressive: 0

  stash_key_granularity:
    # How coarse the items that unlock Wizard Stashes are.
    # 
    # Wizard Stashes start locked and need a key to open. This option controls whether each stash needs its own key or groups of stashes unlock together. Coarser settings mean fewer unique keys but each key opens more stashes.
    # 
    # Like Field Tokens, each granularity has a "_progressive" sibling that uses a generic key. The Nth copy unlocks the Nth stash in a randomized order. The in-game effect is identical, but progressive variants tend to produce faster and more reliable seeds.
    # 
    # off:                  Stashes are not gated. Every Wizard Stash is open from the start — no keys exist.
    # per_tile:             One key per map tile (26 keys). A tile's key unlocks every stash on that tile.
    # per_tile_progressive: 26 generic keys. Each one unlocks the next tile's stashes.
    # global:               A single master key unlocks every stash at once.
    'off': 0
    per_tile: 50
    per_tile_progressive: 0
    global: 0

  gem_pouch_granularity:
    # How collectible gems on the field are gated by Archipelago items.
    # 
    # By default GemCraft stages spawn loose gem orbs you can pick up to grow your mana pool. This option lets you lock those orbs behind Gem Pouch items, so stages stay "dry" until you receive a pouch that covers them.
    # 
    # off:                  Gems are never gated. Every stage spawns gem orbs as normal.
    # per_tile:             One pouch per map tile (26 total). A stage spawns no gem orbs until you receive the pouch for its tile.
    # per_tile_progressive: 26 generic progressive pouches. Each one you receive unlocks gems on the next tile in a randomized order.
    # global:               A single master pouch unlocks gems on every stage at once.
    # 
    # Whichever mode you pick, your starting stage always has gems available immediately so you can play from the moment you connect.
    'off': 0
    per_tile: 50
    per_tile_progressive: 0
    global: 0

  field_token_placement:
    # Controls where field tokens (stage unlocks) are allowed to be placed in the multiworld.
    # 
    # own_world:       Field tokens can only appear in your own locations.
    # any_world:       Field tokens can appear anywhere (default).
    # different_world: Field tokens can only appear in other players' worlds.
    own_world: 0
    any_world: 50
    different_world: 0

  ##########################
  # Difficulty Multipliers #
  ##########################
  starting_wizard_level:
    # Wizard level the player starts at, before any XP tomes are collected.
    # 
    # Setting this above 1 grants bonus wizard levels at game start, giving extra skill points to spend before the run is in full swing.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-100: 0 # random value between 1 and 100

  starting_overcrowd:
    # When enabled, the Overcrowd battle trait is active from the start of the run.
    # 
    # Overcrowd makes more monsters arrive each wave, increasing the difficulty of every stage from the very start. With this on, you receive Overcrowd up front and it won't appear as a collectible item anywhere in the multiworld.
    'false': 50
    'true': 0

  xp_tome_bonus:
    # Approximate total wizard levels granted by all XP tomes you'll find combined.
    # 
    # XP tomes come as Tattered Scrolls, Worn Tomes, and Ancient Grimoires (40 in total), with progressively larger level rewards. This option scales their combined value. Lower for a slower XP curve, higher for a faster one.
    # These levels are "bonus" and not counted towards progression; adding more XP tomes makes the game easier.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 300
    100: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-300: 0 # random value between 0 and 300

  ##############################
  # Enemy Manipulation Options #
  ##############################
  enemy_hp_multiplier:
    # Percentage multiplier applied to every enemy's HP at the start of each wave.
    # 
    # 100 = no change.  Values below 100 make enemies weaker; values above 100 make enemies tougher.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 50
    # Maximum value is 200
    100: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-50-200: 0 # random value between 50 and 200

  enemy_armor_multiplier:
    # Percentage multiplier applied to every enemy's armor level at the start of each wave.
    # 
    # 100 = no change.  Values below 100 make enemies weaker; values above 100 make enemies tougher.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 50
    # Maximum value is 200
    100: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-50-200: 0 # random value between 50 and 200

  enemy_shield_multiplier:
    # Percentage multiplier applied to every enemy's shield HP at the start of each wave.
    # 
    # 100 = no change.  Values below 100 make enemies weaker; values above 100 make enemies tougher.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 50
    # Maximum value is 200
    100: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-50-200: 0 # random value between 50 and 200

  enemies_per_wave_multiplier:
    # Percentage multiplier applied to the number of monsters in every wave.
    # 
    # 100 = no change. 150 = 50% more monsters per wave. 50 = half as many. The wave bar tooltip reflects the actual counts you'll face.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 50
    # Maximum value is 200
    100: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-50-200: 0 # random value between 50 and 200

  extra_wave_count:
    # Number of additional waves appended to each stage beyond its normal count.
    # 
    # Extra waves continue the HP/armor scaling curve from the last natural wave.
    # Set to 0 to leave stage lengths unchanged.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 24
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-24: 0 # random value between 0 and 24

  #####################
  # DeathLink Options #
  #####################
  death_link:
    # When you die, everyone who enabled death link dies. Of course, the reverse is true too.
    'false': 50
    'true': 0

  death_link_punishment:
    # What happens when a DeathLink signal is received.
    # 
    # gem_loss:     A percentage of placed gems (and their towers/traps) are destroyed.
    # wave_surge:   A set of enraged waves is injected immediately.
    # instant_fail: The current level fails immediately (traditional DeathLink).
    # spawn_horde:  A flood of vanilla-strength monsters from the current wave is spawned at once.
    # spawn_special: A burst of special enemies (Apparitions / Specters / etc.) is spawned with HP scaled to ~10 waves above the current one.
    gem_loss: 50
    wave_surge: 0
    instant_fail: 0
    spawn_horde: 0
    spawn_special: 0

  gem_loss_percent:
    # Percentage of placed gems destroyed on a DeathLink (gem_loss punishment only).
    # Always rounded up — so even 1 gem with 10% loses that gem.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 10
    # Maximum value is 50
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-10-50: 0 # random value between 10 and 50

  wave_surge_count:
    # Number of enraged waves injected on a DeathLink (wave_surge punishment only).
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 10
    3: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-10: 0 # random value between 1 and 10

  wave_surge_gem_level:
    # Gem level used to calculate the enrage multiplier for surge waves (wave_surge only).
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 9
    3: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-9: 0 # random value between 1 and 9

  spawn_horde_count:
    # Number of vanilla-strength monsters spawned from the current wave on a DeathLink (spawn_horde only).
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 50
    # Maximum value is 500
    100: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-50-500: 0 # random value between 50 and 500

  spawn_special_elements:
    # Special enemy types that may be spawned on a DeathLink (spawn_special only).
    # 
    # Each of the N spawns picks a random type from this set. Leave the default to allow all five types.
    ['Spire', 'Specter', 'Apparition', 'Wraith', 'Wizard Hunter']

  spawn_special_count:
    # Number of specials spawned on a DeathLink (spawn_special only).
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 10
    5: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-10: 0 # random value between 1 and 10

  death_link_grace_period:
    # Seconds of immunity at the start of each level before a queued DeathLink can trigger.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 10
    # Maximum value is 30
    15: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-10-30: 0 # random value between 10 and 30

  death_link_cooldown:
    # Minimum seconds between two DeathLink punishments. Extra DeathLinks are queued.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 10
    # Maximum value is 30
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-10-30: 0 # random value between 10 and 30

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
